package ig.metrica.ejb.conflujos;

/**
 * The Data Transfer Object class.
 * Created 20/06/2006 10:15:34 AM
 * @author jsanchez
 */
public class ConfiguracionflujosDTO implements java.io.Serializable {
    
    private java.lang.Integer idmodelo;
    private java.lang.Integer altura;
    private java.lang.Integer duracion;
    private java.lang.Integer procentaje;
    private java.lang.Integer valormora;
    private java.lang.Integer saldocapital;
    
    private Boolean valormoraB;
    private Boolean saldocapitalB;
    
    private java.lang.Integer PKidmodelo;
    private java.lang.Integer PKaltura;
    private java.lang.Integer PKduracion;    
    
    
    
    private boolean dirty = false; //dirty flag
    
    public ConfiguracionflujosDTO(){
    }
    
    public ConfiguracionflujosDTO(java.lang.Integer idmodelo, java.lang.Integer altura, java.lang.Integer duracion, java.lang.Integer procentaje, java.lang.Integer valormora, java.lang.Integer saldocapital){
        this.idmodelo = idmodelo;
        this.altura = altura;
        this.duracion = duracion;
        this.procentaje = procentaje;
        this.valormora = valormora;
        this.saldocapital = saldocapital;
        if(saldocapital.equals(1)){
            saldocapitalB=true;
            valormoraB =false;
        }        
        if(valormora.equals(1)){
            saldocapitalB=false;
            valormoraB =true;
        }                
        this.PKidmodelo= idmodelo;
        this.PKaltura= altura;
        this.PKduracion= duracion;
        
    }

    public void setValormoraB(Boolean valormoraB) {
        this.valormoraB = valormoraB;
    }

    public void setSaldocapitalB(Boolean saldocapitalB) {
        this.saldocapitalB = saldocapitalB;
    }

    public Boolean getValormoraB() {
        return valormoraB;
    }

    public Boolean getSaldocapitalB() {
        return saldocapitalB;
    }

    
    private void setDirty(){
        dirty = true;
    }
    
    public boolean isDirty(){
        return dirty;
    }
    
    public void resetDirty(){
        dirty = false;
    }

    public Integer getPKidmodelo() {
        return PKidmodelo;
    }

    public Integer getPKduracion() {
        return PKduracion;
    }

    public Integer getPKaltura() {
        return PKaltura;
    }

    public java.lang.Integer getIdmodelo(){ return idmodelo; }
    public void setIdmodelo(java.lang.Integer idmodelo){
        this.idmodelo = idmodelo;
        setDirty();
    }
    
    public java.lang.Integer getAltura(){ return altura; }
    public void setAltura(java.lang.Integer altura){
        this.altura = altura;
        setDirty();
    }
    
    public java.lang.Integer getDuracion(){ return duracion; }
    public void setDuracion(java.lang.Integer duracion){
        this.duracion = duracion;
        setDirty();
    }
    
    public java.lang.Integer getProcentaje(){ return procentaje; }
    public void setProcentaje(java.lang.Integer procentaje){
        this.procentaje = procentaje;
        setDirty();
    }
    
    public java.lang.Integer getValormora(){ return valormora; }
    public void setValormora(java.lang.Integer valormora){
        this.valormora = valormora;
        saldocapitalB=false;
        valormoraB =true;
        setDirty();
    }
    
    public java.lang.Integer getSaldocapital(){ return saldocapital; }
    public void setSaldocapital(java.lang.Integer saldocapital){
        this.saldocapital = saldocapital;
        saldocapitalB=true;
        valormoraB =false;
        setDirty();
    }
    
    
//    // populate DTO from Object
//    public void populate(Object o) {        
//        Method[] methods = o.getClass().getMethods();
//        for (int i = 0; i < methods.length; i++) {
//            try{
//                String methodName = methods[i].getName();
//                if ((methodName.startsWith("get") ||
//                        methodName.startsWith("is"))
//                        && Modifier.isPublic(methods[i].getModifiers())
//                        && methods[i].getParameterTypes().length == 0
//                        && !methodName.equals("getClass")) {
//                    String setMethodName = methodName.replaceFirst(methodName.startsWith("get")?"get":"is","set");
//                    getClass().getMethod(setMethodName,new Class[]{methods[i].getReturnType()}).
//                            invoke(this, new Object[]{methods[i].invoke(o,null)});
//                }
//            }catch(IllegalAccessException ilE){
//                ilE.printStackTrace();
//            }catch(InvocationTargetException invE){
//                invE.printStackTrace();
//            }catch(NoSuchMethodException noE){
//                // Don't find setMethod for field
//            }
//        }
//    }
    
    
    /**
     * @see java.lang.Object#toString()
     */
    public String toString(){
        return getClass().getName() + "[" +
                "idmodelo: " + this.idmodelo + ", " +
                "altura: " + this.altura + ", " +
                "duracion: " + this.duracion + ", " +
                "procentaje: " + this.procentaje + ", " +
                "valormora: " + this.valormora + ", " +
                "saldocapital: " + this.saldocapital + "]";
    }
    
    /**
     * @see java.lang.Object#equals(java.lang.Object)
     */
    public boolean equals(java.lang.Object otherOb) {
        
        if (this == otherOb) {
            return true;
        }
        if (!(otherOb instanceof ig.metrica.ejb.conflujos.ConfiguracionflujosDTO)) {
            return false;
        }
        ig.metrica.ejb.conflujos.ConfiguracionflujosDTO other = (ig.metrica.ejb.conflujos.ConfiguracionflujosDTO) otherOb;
        return (                
                (idmodelo==null?other.idmodelo==null:idmodelo.equals(other.idmodelo))
                &&
                (altura==null?other.altura==null:altura.equals(other.altura))
                &&
                (duracion==null?other.duracion==null:duracion.equals(other.duracion))
                &&
                (procentaje==null?other.procentaje==null:procentaje.equals(other.procentaje))
                &&
                (valormora==null?other.valormora==null:valormora.equals(other.valormora))
                &&
                (saldocapital==null?other.saldocapital==null:saldocapital.equals(other.saldocapital))
                &&
                (valormoraB==null?other.valormoraB==null:valormoraB.equals(other.valormoraB))
                &&
                (saldocapitalB==null?other.saldocapitalB==null:saldocapitalB.equals(other.saldocapitalB))
                &&
                (PKidmodelo==null?other.PKidmodelo==null:PKidmodelo.equals(other.PKidmodelo))
                &&
                (PKaltura==null?other.PKaltura==null:PKaltura.equals(other.PKaltura))
                &&
                (PKduracion==null?other.PKduracion==null:PKduracion.equals(other.PKduracion))
                );
    }
    
    /**
     * @see java.lang.Object#hashCode()
     */
    public int hashCode() {
        return (
                
                (idmodelo==null?0:idmodelo.hashCode())
                ^
                (altura==null?0:altura.hashCode())
                ^
                (duracion==null?0:duracion.hashCode())
                ^
                (procentaje==null?0:procentaje.hashCode())
                ^
                (valormora==null?0:valormora.hashCode())
                ^
                (saldocapital==null?0:saldocapital.hashCode())
                ^
                (valormoraB==null?0:valormoraB.hashCode())
                ^
                (saldocapitalB==null?0:saldocapitalB.hashCode())
                ^
                (PKidmodelo==null?0:PKidmodelo.hashCode())
                ^
                (PKaltura==null?0:PKaltura.hashCode())
                ^
                (PKduracion==null?0:PKduracion.hashCode())
                );
    }
    
}
